package main

import (
	"encoding/json"
	"fmt"
	"go-client/entity"
	"go-client/socket"
	"time"
)

func main() {
	// 模拟的 socket 地址
	senderSocketAddr := "127.0.0.1:8867"

	// 创建一个用于发送数据的 channel
	dataChan := make(chan string)

	// 启动 SocketSender 协程
	go socket.SocketSender(senderSocketAddr, dataChan)

	// 模拟发送一些数据
	for i := 0; i < 5; i++ {
		// 创建 MsgModel 实例
		msg := entity.MsgModel{
			DataId:      int64(i),
			DataIp:      "192.168.1." + fmt.Sprintf("%d", i),
			DataPort:    8080 + i,
			CaptureTime: time.Now().Unix(),
		}

		// 将 MsgModel 实例序列化为 JSON 字节切片
		data, err := json.Marshal(msg)
		if err != nil {
			fmt.Printf("Error marshaling data: %v\n", err)
			continue
		}

		// 将字节切片转换为 string 类型
		dataStr := string(data)

		// 发送序列化后的数据到 channel
		dataChan <- dataStr
		time.Sleep(1 * time.Second) // 每隔 1 秒发送一条数据
	}

	// 关闭 channel 表示数据发送完毕
	close(dataChan)

	// 等待一段时间，确保所有数据都发送完成
	time.Sleep(2 * time.Second)
}
